#include "outline/simplify3_impl.h"
#include "outline/fixed_line_estimator.h"
#include "outline/motion_line_estimator.h"
#include "outline/bezier_estimator.h"

namespace outline {

template class simplifier< fixed_line_estimator< point_us > >;
template class simplifier< fixed_line_estimator< point_s > >;
template class simplifier< fixed_line_estimator< point_i > >;
template class simplifier< fixed_line_estimator< point_f > >;
template class simplifier< fixed_line_estimator< point_d > >;

template class simplifier< fixed_line_estimator< std::vector<point_us> > >;
template class simplifier< fixed_line_estimator< std::vector<point_s> > >;
template class simplifier< fixed_line_estimator< std::vector<point_i> > >;
template class simplifier< fixed_line_estimator< std::vector<point_f> > >;
template class simplifier< fixed_line_estimator< std::vector<point_d> > >;

template class simplifier< motion_line_estimator< timed_point_us > >;
template class simplifier< motion_line_estimator< timed_point_s > >;
template class simplifier< motion_line_estimator< timed_point_i > >;
template class simplifier< motion_line_estimator< timed_point_f > >;
template class simplifier< motion_line_estimator< timed_point_d > >;

template class simplifier< motion_line_estimator< timed_points_us > >;
template class simplifier< motion_line_estimator< timed_points_s > >;
template class simplifier< motion_line_estimator< timed_points_i > >;
template class simplifier< motion_line_estimator< timed_points_f > >;
template class simplifier< motion_line_estimator< timed_points_d > >;

template class simplifier< bezier_estimator< unsigned short > >;
template class simplifier< bezier_estimator< short > >;
template class simplifier< bezier_estimator< int > >;
template class simplifier< bezier_estimator< float > >;
template class simplifier< bezier_estimator< double > >;

} //namespace outline
